"""
Boss Agent 使用示例

演示如何使用Boss智能体完成各种任务
"""
import os
import sys

# 添加项目路径
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'boss.settings')
import django
django.setup()

from agent.boss_agent import BossAgent


def print_result(title, result):
    """格式化打印结果"""
    print("\n" + "=" * 60)
    print(f"📋 {title}")
    print("=" * 60)
    
    if result['success']:
        print(f"✅ 成功")
        print(f"\n💬 Agent回复:")
        print("-" * 60)
        print(result['output'])
        print("-" * 60)
        print(f"\n📊 统计:")
        print(f"   - 工具调用: {result.get('tool_calls', 0)}次")
        print(f"   - 会话ID: {result.get('session_id', 'N/A')}")
    else:
        print(f"❌ 失败")
        print(f"   错误: {result.get('error', '未知错误')}")
    
    print("=" * 60)


def example_1_simple_query():
    """示例1：简单对话"""
    print("\n🎯 示例1：简单对话")
    
    agent = BossAgent(verbose=False)
    
    result = agent.chat(
        user_input="你好！请介绍一下你的功能",
        user_id=1,
        session_id="example_001"
    )
    
    print_result("简单对话", result)


def example_2_job_query():
    """示例2：职位查询"""
    print("\n🎯 示例2：职位查询")
    
    agent = BossAgent(verbose=False)
    
    result = agent.chat(
        user_input="帮我查询Python开发工程师的职位",
        user_id=1,
        session_id="example_002"
    )
    
    print_result("职位查询", result)


def example_3_candidate_search():
    """示例3：候选人检索"""
    print("\n🎯 示例3：候选人检索")
    
    agent = BossAgent(verbose=False)
    
    result = agent.chat(
        user_input="帮我找Python开发的候选人，要求3年以上经验，本科学历",
        user_id=1,
        session_id="example_003"
    )
    
    print_result("候选人检索", result)


def example_4_multi_turn():
    """示例4：多轮对话"""
    print("\n🎯 示例4：多轮对话")
    
    agent = BossAgent(verbose=False)
    session_id = "example_004"
    user_id = 1
    
    # 第1轮
    print("\n[第1轮对话]")
    result1 = agent.chat(
        user_input="我们公司需要招聘Python工程师",
        user_id=user_id,
        session_id=session_id
    )
    print(f"Agent: {result1['output'][:200]}")
    
    # 第2轮
    print("\n[第2轮对话]")
    result2 = agent.chat(
        user_input="帮我生成这个职位的JD",
        user_id=user_id,
        session_id=session_id
    )
    print(f"Agent: {result2['output'][:200]}")
    
    # 第3轮
    print("\n[第3轮对话]")
    result3 = agent.chat(
        user_input="推荐几个合适的候选人",
        user_id=user_id,
        session_id=session_id
    )
    print(f"Agent: {result3['output'][:200]}")
    
    print("\n✅ 多轮对话测试完成")


def example_5_knowledge_query():
    """示例5：知识库查询"""
    print("\n🎯 示例5：知识库查询")
    
    agent = BossAgent(verbose=False)
    
    result = agent.chat(
        user_input="你们公司有什么福利？",
        user_id=1,
        session_id="example_005"
    )
    
    print_result("知识库查询", result)


def main():
    """
    主函数：运行所有示例
    """
    print("\n" + "🚀" * 30)
    print("Boss Agent 使用示例")
    print("🚀" * 30)
    
    # 检查环境变量
    if not os.getenv("DASHSCOPE_API_KEY"):
        print("\n❌ 错误: 未设置 DASHSCOPE_API_KEY 环境变量")
        print("请执行: export DASHSCOPE_API_KEY=your_api_key")
        return
    
    try:
        # 运行示例
        example_1_simple_query()
        
        example_2_job_query()
        
        # example_3_candidate_search()  # 需要RAG系统正常工作
        
        example_4_multi_turn()
        
        example_5_knowledge_query()
        
        print("\n" + "✅" * 30)
        print("所有示例运行完成！")
        print("✅" * 30)
        
    except Exception as e:
        print(f"\n❌ 运行示例失败: {str(e)}")
        import traceback
        traceback.print_exc()


if __name__ == '__main__':
    main()


